1. Field of the Invention
This invention relates generally to wireless telecommunication location routing/load balancing—CDMA, GSM, UMTS, IMS/LTE, SUPL, etc.
2. Background of Related Art
The Open Mobile Alliance (OMA) standards working group has defined a Secure User Plane Location (SUPL) standard to support location of SUPL enabled terminals (i.e. mobile devices with secure user plane location (SUPL) support). In particular, the Secure User Plane Location (SUPL) standard is conventionally used to transfer location information between a SUPL location platform (SLP) (i.e. a location server) and a SUPL enabled terminal (SET), for purposes of articulating a current position of the SUPL enabled terminal (SET).
Before a SUPL location platform (SLP) and a SUPL enabled terminal (SET) may exchange location information, the two entities must first establish a SUPL session. In accordance with conventional technology, a SUPL session can either be SET-initiated or network-initiated.
Traditionally, a network-initiated SUPL session begins when a SUPL location platform (SLP) passes a SUPL INIT message to a SUPL enabled terminal (SET). Alternatively, a SET-initiated SUPL session traditionally begins when a SUPL enabled terminal (SET) passes a SUPL START message to a SUPL location platform (SLP).
An intelligent router product, such as an Xypoint® Intelligent Router (XIR), available from TeleCommunication Systems, Inc. of Annapolis, Md., is conventionally integrated between a SUPL location platform (SLP) and a SUPL enabled terminal (SET).
FIG. 7 depicts a conventional network architecture for establishing a SUPL session between a SUPL location platform (SLP) and a SUPL enabled terminal (SET).
In particular, as depicted in FIG. 7, an intelligent router product (e.g. an Xypoint® Intelligent Router (XIR)) 800 is conventionally used during SUPL session setup to route network-initiated SUPL session requests to an originating SUPL server 820a, 820b and to load balance SET 810 initiated SUPL session requests across multiple SUPL servers 820a, 820b. In accordance with conventional technology, an existing intelligent router 800 routes SUPL session requests based on a SUPL version and a roaming status/location identifier identified for a requesting SUPL enabled terminal (SET) 810.
As portrayed in FIG. 7, an existing intelligent router 800 (e.g. Xypoint® Intelligent Router (XIR), also known as a SUPL intelligent load balancer (SILB)) conventionally includes a SUPL session director (SSD) 840 and a global service load balancer 830.
A global service load balancer (GSLB) 830 is typically used to balance SET 810-initiated SUPL session requests across multiple SUPL servers 820a, 820b. In particular, a conventional global service load balancer (GSLB) 830 may balance load by directing client requests across multiple servers 820a, 820b and/or by directing client requests to one or more servers 820a, 820b located within a closest geographic proximity of a requesting client device 810, and/or by directing client requests to servers 820a, 820b deemed best equipped to handle client requests initiated by a requesting client device 810, etc.
When a SUPL session is established between a SUPL location platform (SLP) 820a, 820b and a SUPL enabled terminal (SET) 810, the SUPL enabled terminal (SET) 810 may send a SUPL POS INIT message to the SUPL location platform (SLP) 820a, 820b (via an intermediary intelligent router product 800) to initiate a positioning protocol session therewith. A SUPL POS INIT message conventionally includes a session ID (as indicated in a SUPL session request message), a SET capabilities parameter, a hash of a previously exchanged SUPL session request, and a location identifier, among other parameters. The SET capabilities parameter in the SUPL POS INIT message typically indicates SET-supported positioning methods (e.g. assisted global positioning system (A-GPS)) and SET-supported positioning protocols, e.g., a radio resource location services protocol (RRLP), a long term evolution (LTE) positioning protocol (LLP), etc.
Once a SUPL location platform (SLP) 820a, 820b receives a SUPL POS INIT message from a SUPL enabled terminal (SET) 810, the SUPL location platform (SLP) 820a, 820b can select an appropriate positioning method to use for calculating the current position of the SUPL enabled terminal (SET) 810. A SUPL location platform (SLP) 820a, 820b typically selects an appropriate positioning method for a SUPL enabled terminal (SET) 810 based on SET-supported positioning methods and protocols listed in a received SUPL POS INIT message.
In accordance with conventional technology, a SUPL location platform (SLP) 820a, 820b and a SUPL enabled terminal (SET) 810 exchange positioning messages until a current position of the SUPL enabled terminal (SET) 810 is articulated. Once positioning information is obtained for the SUPL enabled terminal (SET) 810, the SUPL enabled terminal (SET) 810 and the SUPL location platform (SLP) 820a, 820b exchange a SUPL END message to terminate the SUPL session.
Conventional SUPL standards cover a number of networks and positioning technologies. A secure location session manager is known, e.g., U.S. Pat. No. 7,974,235.
The secure user plane location (SUPL) standard is a conventional standard used to exchange location information between a SUPL enabled terminal (SET) (i.e. a mobile device with secure user plane location (SUPL) standard support) and a SUPL location platform (i.e. a location server), for purposes of articulating a current position of the SUPL enabled terminal (SET). To exchange positioning messages, a SUPL location platform (SLP) and a SUPL enabled terminal (SET) must first establish a SUPL session. A SUPL session may either be SET-initiated or network-initiated.
When multiple SUPL servers (e.g. SUPL location platforms) are deployed in a network for purposes of load sharing and high availability, a couple issues may arise. First, in network-initiated call flows, open mobile alliance (OMA) SUPL version 1 and SUPL version 2 specifications do not permit a SUPL enabled terminal (SET) to respond directly to an originating SUPL server (e.g. a SUPL location platform (SLP)). Second, open mobile alliance (OMA) SUPL version 1 and SUPL version 2 specifications do not address a global service load balancing (GSLB) functionality for SET-initiated calls.
An intelligent router is conventionally integrated between a SUPL enabled terminal (SET) and a SUPL server (e.g. a SUPL location platform (SLP)) to provide appropriate session binding for network-initiated call flows and to provide global service load balancing (GSLB) for SET-initiated call flows.
In the context of an intelligent router, a SET-initiated SUPL session is identified as a message exchange sequence that begins when a SUPL START message (that does not include a SUPL location platform (SLP) identifier (ID)), transmitted by a SUPL enabled terminal (SET) (i.e. a mobile device with secure user plane location (SUPL) support), is received at a SUPL location platform (SLP) (i.e. a location server). A SET-initiated SUPL session ends when a SUPL END response is received at a SUPL enabled terminal (SET) or a SUPL location platform (SLP), or when a connection is closed due to termination by a peer or due to expiration of a connection inactivity timer.
Moreover, a network-initiated SUPL session is identified as a message exchange sequence that begins when a SUPL INIT message, or any other message (excluding a SUPL START message) that has both SUPL enabled terminal (SET) and SUPL location platform (SLP) session IDs populated, is received at a SUPL enabled terminal (SET). A network-initiated SUPL session ends when a first SUPL END message is exchanged between a SUPL enabled terminal (SET) and a SUPL location platform (SLP), or when a connection is closed due to termination by a peer or due to expiration of a connection inactivity timer.
FIG. 8 depicts conventional intelligent routing logic.
In particular, as portrayed in FIG. 8, existing intelligent routing logic routes SET-initiated SUPL session requests (e.g. SUPL START messages) to a target SUPL location platform (SLP) 70a, 70b, 72a, 72b based on a SUPL version and a roaming status/location ID identified for the requesting SUPL enabled terminal (SET).
In particular, as portrayed in step 700 of FIG. 8, existing intelligent routing logic receives and processes a SUPL START message initiated by a SUPL enabled terminal (SET).
As shown in step 702, the intelligent router then checks mobile country code (MCC)/mobile network code (MNC) information for the requesting SUPL enabled terminal (SET) to determine whether or not the SUPL enabled terminal (SET) is roaming. The roamed-to SUPL server may be the same operator as the HOME SUPL Server or the server may be in a different operator. This allows for a sophisticated inter-operator roaming deployment without the need for the operators to implement the OMA Roaming Location Protocol (RLP).
As portrayed in step 704, if the intelligent router finds that the SUPL enabled terminal (SET) is not roaming, then the intelligent router routes the SUPL START message to either a home SUPL location platform (SLP) SUPL version 1 server 70a or a home SUPL location platform (SLP) SUPL version 2 server 72a, depending on which version of SUPL the SUPL enabled terminal (SET) is supporting, e.g., SUPL 1.0 or SUPL 2.0.
Alternatively, as shown in step 706, if the intelligent router determines that the SUPL enabled terminal (SET) is roaming, then the intelligent router routes the SUPL START message to either a roaming SUPL location platform (SLP) SUPL version 1 server 70b or a roaming SUPL location platform (SLP) SUPL version 2 server 72b, depending on which version of SUPL the SUPL enabled terminal (SET) is supporting, e.g., SUPL 1.0 or SUPL 2.0.